import java.io.File;
import java.util.Scanner;

public class TestDemo {
    public static void main(String[] args) {
        //让用户输入一个指定地址
        System.out.println("请输入一个指定地址");
        Scanner scanner = new Scanner(System.in);
        String path = scanner.next();

        //判断路径是否合法
        File rootPath = new File(path);
          if(!rootPath.isDirectory()){
              System.out.println("你输入扫描的路径有误!!");
             return;
          }

        //让用户输入,查询的关键字 ;
        System.out.println("请输入一个指定的字符");
        String word = scanner.next() ;

        //进行递归扫描 ; 找出符合的文件 ;
        //用一个方法来判断 是目录还是文件 , 是文件就和word比较一下
        scanDir(rootPath , word);

    }

    private static void scanDir(File rootPath, String word) {
        // 用listFiles 获取rootPath目录下的所有 文件和目录 ;
         File[] files = rootPath.listFiles();
        //如果rootPath下没有东西了, 就直接返回
        if(files == null){
            return ;
        }
        //遍历files , 对目录或文件做出操作
        for(File file : files){
            //打印日志
            System.out.println("当前扫描的文件:"+file.getAbsolutePath());

            if(file.isFile()) //如果是文件就怎么怎么样
            {
                //判断文件是否要删除
                checkDelete(file , word);

            }else{      //如果是目录就递归
                scanDir(file , word);
            }
        }
    }

    private static void checkDelete(File file, String word) {
         String name = file.getName();
         if(name.contains(word)){
             System.out.println("当前文件为"+file.getAbsolutePath() + " 是否要删除: (Y/N)");
             Scanner scanner = new Scanner(System.in);
              String check = scanner.next();
             if(check.equals("y")||check.equals("Y")){
                 //判断是 Y ,就删除 ;
                 if(file.delete()){
                     System.out.println("删除成功");
                 }else {
                     System.out.println("删除失败");
                 }
             }else {
                 System.out.println("取消删除");
             }
         }
    }
}
